{_obsidian_pattern_tag_public}
started in https://docs.google.com/document/d/1ujswRtZy9_JEd2pZ9wTbpedFUF93KxFiWlJD0UaBeEs/edit
/my/proj/wheel
✨ dash(pts/24):/my/proj/wheel% pdm run python usb_wheel_to_scroll.py
**Instructions adapted from https://andrewmemory.wordpress.com/2019/12/16/mapping-a-usb-volume-knob-into-a-keyboard-on-linux-for-sdr/
https://andrewmemory.wordpress.com/2019/12/16/mapping-a-usb-volume-knob-into-a-keyboard-on-linux-for-sdr/
https://wiki.wireshark.org/CaptureSetup/USB#linux
Dmesg looks like this:
[760290.177108] usb 3-1.2: USB disconnect, device number 76
[760293.230924] usb 3-1.2: new full-speed USB device number 82 using xhci_hcd
[760293.344174] usb 3-1.2: New USB device found, idVendor=8808, idProduct=660c, bcdDevice= 0.00
[760293.344179] usb 3-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[760293.358247] input: HID 8808:660c as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.2/3-1.2:1.0/0003:8808:660C.004B/input/input129
[760293.415161] hid-generic 0003:8808:660C.004B: input,hidraw5: USB HID v1.11 Keyboard [HID 8808:660c] on usb-0000:00:14.0-1.2/input0
[760293.415861] input: HID 8808:660c as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.2/3-1.2:1.1/0003:8808:660C.004C/input/input130
[760293.415981] hid-generic 0003:8808:660C.004C: input,hidraw6: USB HID v1.10 Mouse [HID 8808:660c] on usb-0000:00:14.0-1.2/input1
[760293.418524] input: HID 8808:660c Keyboard as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.2/3-1.2:1.2/0003:8808:660C.004D/input/input131
[760293.475261] input: HID 8808:660c as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.2/3-1.2:1.2/0003:8808:660C.004D/input/input132
[760293.475348] input: HID 8808:660c Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.2/3-1.2:1.2/0003:8808:660C.004D/input/input133
[760293.475512] hid-generic 0003:8808:660C.004D: input,hiddev1,hidraw7: USB HID v1.10 Keyboard [HID 8808:660c] on usb-0000:00:14.0-1.2/input2
[760293.479137] usb 3-1.2: language id specifier not provided by device, defaulting to English
[760293.484118] hid-generic 0003:8808:660C.004E: hiddev2,hidraw8: USB HID v1.00 Device [HID 8808:660c] on usb-0000:00:14.0-1.2/input3
So I write /etc/udev/hwdb.d/99-usb-knob.hwdb with RHS key choices from https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h
evdev:input:bv8808p660C
KEYBOARD_KEY_c00ea=up
KEYBOARD_KEY_c00e9=down
KEYBOARD_KEY_c00cd=right
Then
✨ dash(pts/16):/etc/udev/hwdb.d% sudo systemd-hwdb update
✨ dash(pts/16):/etc/udev/hwdb.d% sudo udevadm trigger
This gives me knob-arrows, but i want mousewheel:
evdev:input:bv8808p660C
ID_INPUT_KEYBOARD=1
ID_INPUT_MOUSE=1
KEYBOARD_KEY_c00ea=f13
KEYBOARD_KEY_c00e9=f14
KEYBOARD_KEY_c00cd=right
Then how to make wheel events from f13/f14?
Hiddev1 (keyboard) gets turn msgs
Hiddev2 (device) gets a msg for button-down (but not up)
IC says 552EC03 also seen at https://twitter.com/Foone/status/1562550271804186624**
https://twitter.com/Foone/status/1562551356858085376
https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h
https://elixir.bootlin.com/linux/latest/source/drivers/input/input.c#L977